package com.ruoyi.factorydata.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.factorydata.domain.ProductionProject;
import lombok.Builder;
import lombok.Data;

import java.util.Date;

@Builder
@Data
public class ProductionProjectProductionInfoVo {

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;


    @Excel(name = "项目Id")
    private Long projectId;
    /**
     * 产品BomId
     */
    @Excel(name = "产品BomId")
    private Long productionBomId;

    /**
     * 物料id
     */
    @Excel(name = "物料id")
    private Long materialId;

    /**
     * 产品编码
     */
    @Excel(name = "产品编码")
    private String materialCode;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    private String materialName;

    /**
     * 规格
     */
    @Excel(name = "规格")
    private String materialSpecification;

    /**
     * 计量单位id
     */
    @Excel(name = "计量单位id")
    private Long materialUnit;

    /**
     * 计量单位名称
     */
    @Excel(name = "计量单位名称")
    private String materialUnitName;

    /**
     * 计划产量
     */
    @Excel(name = "计划产量")
    private String plannedProduction;

    /**
     * 已排产
     */
    @Excel(name = "已排产")
    private String scheduledProduction;
    /**
     * 实际产量
     */
    @Excel(name = "实际产量")
    private String actualProduction;

    /**
     * 交付日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交付日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliveryDate;


    /**
     * 状态
     */
    private String status;

    private String projectStatus;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic(value = "0", delval = "2")
    private String delFlag;

    /**
     * 版本号
     */
    @Version
    private Long version;

    private ProductionProject productionProject;
}
